$(function() {
	// 取得输入框JQuery对象
	var searchInput = $('#searchKeyWord');
	
	// 关闭浏览器提供给输入框的自动完成
//	searchInput.attr('autocomplete', 'off');
	searchInput.attr('autocomplete', 'on');
	// 创建自动完成的下拉列表，用于显示服务器返回的数据,插入在搜索按钮的后面，等显示的时候再调整位置
	var autocomplete = $('<div class="autocomplete"></div>').hide()
			.insertAfter('#search');
	// 清空下拉列表的内容并且隐藏下拉列表区
	var clear = function() {
		autocomplete.empty().hide();
	};
	// 注册事件，当输入框失去焦点的时候清空下拉列表并隐藏
	searchInput.blur(function() {
		setTimeout(clear, 500);
	});
	// 下拉列表中高亮的项目的索引，当显示下拉列表项的时候，移动鼠标或者键盘的上下键就会移动高亮的项目，想百度搜索那样
	var selectedItem = null;
	// timeout的ID
	var timeoutid = null;
	// 设置下拉项的高亮背景
	var setSelectedItem = function(item) {
		// 更新索引变量
		selectedItem = item;
		// 按上下键是循环显示的，小于0就置成最大的值，大于最大值就置成0
		if (selectedItem < 0) {
			selectedItem = autocomplete.find('li').length - 1;
		} else if (selectedItem > autocomplete.find('li').length - 1) {
			selectedItem = 0;
		}
		// 首先移除其他列表项的高亮背景，然后再高亮当前索引的背景
		autocomplete.find('li').removeClass('highlight').eq(selectedItem)
				.addClass('highlight');
	};
	var ajax_request = function(){
		if(searchInput.val()!=null &&searchInput.val()!==""){
			// ajax服务端通信
			$.ajax({
				url : getConfig().autoCompleteUrl, // 服务器的地址
				data: {
					py: searchInput.val(),
					count:10
				}, // 参数
				dataType : 'json', // 返回数据类型
				type : 'GET', // 请求类型
				success : function(data) {
					var _data=data;
					if (_data.length) {
						// 遍历data，添加到自动完成区
						autocomplete.empty();
						$.each(_data, function(index, term) {
							// 创建li标签,添加到下拉列表中
							$('<li></li>').text(term).appendTo(autocomplete)
							.addClass('clickable').hover(
									function() {
										// 下拉列表每一项的事件，鼠标移进去的操作
										$(this).siblings().removeClass(
										'highlight');
										$(this).addClass('highlight');
										selectedItem = index;
									}, function() {
										// 下拉列表每一项的事件，鼠标离开的操作
										$(this).removeClass('highlight');
										// 当鼠标离开时索引置-1，当作标记
										selectedItem = -1;
									}).click(function() {
										// 鼠标单击下拉列表的这一项的话，就将这一项的值添加到输入框中
										searchInput.val(term);
										// 清空并隐藏下拉列表
										autocomplete.empty().hide();
									});
						});// 事件注册完毕
						// 设置下拉列表的位置，然后显示下拉列表
						var ypos = searchInput.position().top;
						var xpos = searchInput.position().left;
						autocomplete.css('width', searchInput.css('width'));
						autocomplete.css({
							'float' : "left",
							'display' : "block"
						});
						setSelectedItem(0);
						// 显示下拉列表
						autocomplete.show();
					}
				}
			});
		}
	};
	// 对输入框进行事件注册
	searchInput.keyup(function(event) {
		// 字母数字，退格，空格
		if (event.keyCode > 40 || event.keyCode == 8 || event.keyCode == 32) {
			// 首先删除下拉列表中的信息
			autocomplete.empty().hide();
			clearTimeout(timeoutid);
			timeoutid = setTimeout(ajax_request, 200);
		} else if (event.keyCode == 38) {
			// 上
			// selectedItem = -1 代表鼠标离开
			if (selectedItem == -1) {
				setSelectedItem(autocomplete.find('li').length - 1);
			} else {
				// 索引减1
				setSelectedItem(selectedItem - 1);
			}
			event.preventDefault();
		} else if (event.keyCode == 40) {
			// 下
			// selectedItem = -1 代表鼠标离开
			if (selectedItem == -1) {
				setSelectedItem(0);
			} else {
				// 索引加1
				setSelectedItem(selectedItem + 1);
			}
			event.preventDefault();
		}
	}).keypress(function(event) {
		// enter键
		if (event.keyCode == 13) {
			// 列表为空或者鼠标离开导致当前没有索引值
			if (autocomplete.find('li').length == 0 || selectedItem == -1) {
				return;
			}
			searchInput.val(autocomplete.find('li').eq(selectedItem).text());
			autocomplete.empty().hide();
			event.preventDefault();
		}
	}).keydown(function(event) {
		//esc键
		if (event.keyCode == 27) {
			autocomplete.empty().hide();
			event.preventDefault();
		}
	});
	//注册窗口大小改变的事件，重新调整下拉列表的位置
	$(window).resize(function() {
		var ypos = searchInput.position().top;
		var xpos = searchInput.position().left;
		autocomplete.css('width', searchInput.css('width'));
		autocomplete.css({
			'left' : xpos + "px",
			'top' : ypos + "px"
		});
	});
});
jQuery(document).ready(function() {
	
	var searchUrl = getConfig().searchUrl;
	// App.init();
	$(".page-container").removeClass("sidebar-closed");
	$('#search').click(function() {
		
		var key = $('#searchKeyWord').val();
		key = key.replace(/(^\s*)|(\s*$)/g, "");
		if (key == null || key == '') {
			alert("关键字不能为空");
			return;
		}
		var value = encodeURIComponent($('#searchKeyWord').val());
		value = encodeURIComponent(value);
		window.location.href=searchUrl+'&keyWord='+value;
		window.event.returnValue = false; 
	});

	// 输入关键字后敲击Enter键进行搜索
	$('#searchKeyWord').keydown(function(event) {
				if (event.keyCode == 13) {
					var key = $('#searchKeyWord').val();
					key = key.replace(/(^\s*)|(\s*$)/g, "");
					if (key == null || key == '') {
						alert("关键字不能为空");
						return;
					}
					var value = encodeURIComponent($('#searchKeyWord').val());
					value = encodeURIComponent(value);
					window.location.href=searchUrl+'&keyWord='+value;
					window.event.returnValue = false; 
				}
			});

});

